Nous explorons les variables quantitatives du jeu de données des arbres de la mairie de Paris disponible ici. Ces données sont régulièrement mises à jour et peuvent varier si vous exécuter le code à une date différente de celle de ce document.
library(sf) #pour gérer les objets spatiaux
library(dplyr) # pour la manipulation de données
arbres <- read_sf("../../AnalyseUnivariee/les-arbres.geojson") # path à modifier
plot(arbres$geometry, cex= 0.01, pch=20) #affiche le semis de pointsPour chacun des points ci-dessu, on dispose des variables suivantes :
names(arbres) [1] "libellefrancais" "idemplacement" "domanialite" "typeemplacement"
[5] "hauteurenm" "espece" "adresse" "arrondissement"
[9] "idbase" "genre" "circonferenceencm" "stadedeveloppement"
[13] "remarquable" "varieteoucultivar" "complementadresse" "geo_point_2d"
[17] "geometry"
Etant donné ces mesures :
summary(arbres$hauteurenm) Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0 5.0 8.0 13.2 12.0 881818.0
Comment qualifier cette distribution ?
La distribution n'est clairement pas symétrique :
La moyenne est supérieure au troisème quartile et supérieure à la médiane : la distribution est déformée à droite , il y a sur-représentation des valeurs élevées (i.e. supérieure à la médiane).
La moyenne de cette variable est de 13.2 m. Sachant que l'écart type est de 6.58 , la moyenne est-elle un bon indicateur de la hauteur des arbres de Paris ? (à titre de comparaison un bâtiment de trois étages fait environ 13m de haut.)
On trace l'histogramme de la variable "hauteur":
histo1 <- ggplot(arbres)+
geom_histogram(aes(x=hauteurenm), bins = 60)+xlab("hauteur") + ylab("effectif")
histo1Que peut on dire de la hauteur des arbres à partir de cet histogramme ?
Etant donné l'échelle du graphique pour l'axe des abscisses, on ne peut rien dire d'intéressant sur cette distribution; toutes les valeurs sont dans la même colonne. Au moins une valeur manifestement aberrantes est supérieure à 750 000 mètres, ce qui explique que l'étendue du graphique en abscisse soit si grande.
Dans ce cas il faut filtrer les valeurs aberrantes pour "voir quelque chose"Certaines valeurs sont aberrantes, nous les trouvons avec la fonction top_n :
top_n(arbres, 5 , hauteurenm) # les 5 arbres les plus hautsSimple feature collection with 5 features and 16 fields
geometry type: POINT
dimension: XY
bbox: xmin: 2.314893 ymin: 48.82351 xmax: 2.45801 ymax: 48.86181
CRS: 4326
# A tibble: 5 x 17
libellefrancais idemplacement domanialite typeemplacement hauteurenm espece adresse
* <chr> <chr> <chr> <chr> <dbl> <chr> <chr>
1 Platane 000301040 Alignement Arbre 2018 occid… BOULEV…
2 Platane 004301006 Alignement Arbre 2015 x his… BOULEV…
3 Sophora 000101004 Alignement Arbre 5155 japon… AVENUE…
4 Tilleul 000301046 Alignement Arbre 881818 tomen… ROUTE …
5 Platane 006202008 Alignement Arbre 2525 occid… BOULEV…
# … with 10 more variables: arrondissement <chr>, idbase <dbl>, genre <chr>,
# circonferenceencm <dbl>, stadedeveloppement <chr>, remarquable <chr>,
# varieteoucultivar <chr>, complementadresse <chr>, geo_point_2d <list>,
# geometry <POINT [°]>
Nous allons filtrer les arbres pour ne conserver que les arbres dont la hauteur est inférieur ou égale à 60m (une taille déjà gigantesque pour un arbre) et supérieure ou égale à 1m (avec la fonction filter du package dplyr)
arbres_filtered <- filter(arbres, hauteurenm <= 60 & hauteurenm >=1 ) #filtrageOn re-calcule les mesures de quartiles et de moyenne :
summary(arbres_filtered$hauteurenm) Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 6.00 10.00 10.26 14.00 60.00
Que peut-on dire de cette distribution ?
Médiane et moyenne sont presque confondues ce qui indique que la distribution est presque symétrique , ou du moins assez peu déformée.
La distribution est "piquée" : le pic est étroit.
Elle est néanmoins légèrement déformée sur la droite comme le montre l'écart entre le troisième quartile et le maximum, bien plus important que l'écart entre : quelques arbres très hauts "tirent" la distribution vers la droite, mais ils sont peu nombreux. Cf. l'histogramme sur données filtrées ci-dessous.histo2 <- ggplot(arbres_filtered)+
geom_histogram(aes(x=hauteurenm), bins = 30, color="#cccccc", fill="#34b7eb")+
xlab("hauteur")+
ylab("effectif")+
ggtitle("Histogramme des hauteurs des arbres mesurant entre 1 et 100m")+
theme_light()
histo2 #affichage Au vu de l'histogramme, la moyenne (désormais de 10m environ) est-elle un bon indicateur de la hauteur des arbres pour ce jeu de données filtrée ?
Dans les données, la hauteur est donnée en mètres avec des valeurs entières, on peut donc directement calculer le mode.
On va utiliser :
table qui va compter le nombre d'arbres de même hauteur , pour chaque hauteur représentée dans les donnéeswhich qui trouve dans une collection , l'index de l'élément qui correspond à un prédicat.comptage <- table(arbres_filtered$hauteurenm) # table de comptage
names(comptage) <- paste0(names(comptage),"m") # renomme les colonnes de la table de comptage
hauteur_max <- max(comptage) # determination du maximum
idxmax <- which(comptage==hauteur_max) # détermination de l'index de la valeur maximum
names(comptage)[idxmax] # valeur du mode[1] "5m"
plot(arbres_filtered["hauteurenm"], pch=20, cex=0.01)Étant donné les informations receuillies sur la distribution, pourquoi pouvait-on s'attendre à cette carte toute bleue ?
on pouvait s'attendre à ce que la variété de couleurs visibles soit faible:
Si on observe l'histogramme, on voit que l'essentiel de l'effectif est concentré entre 5 et 15m , autour de la moyenne avec très peu de valeurs extrêmes (supérieures à 25-30m).
Donc la cartographie du semis de points sera globalement d'une seule couleur, bien entendu uniquement si l'échelle de couleur est définie pour l'intervalle [1m;60m]